﻿/************************************************************************

   Extended Silverlight Toolkit

   Copyright (C) 2010-2012 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://extendedsilverlight.codeplex.com/license

   Please purchase a commercial version of this toolkit if you are using
   it in a commercial product. The commercial versions support the project,
   and also include more features for each control, priority support,
   source code, updates, removed watermark, and a proprietary license.

   Visit http://xceed.com and follow @datagrid on Twitter.

  **********************************************************************/

using System;
using System.Windows;

namespace Xceed.Silverlight.ListBox
{
  internal class CachedSizeChangedEventArgs : EventArgs
  {
    public CachedSizeChangedEventArgs( Size oldSize, Size newSize )
    {
      this.OldSize = oldSize;
      this.NewSize = newSize;

      System.Diagnostics.Debug.Assert( ( ( this.NewSize.Width >= this.OldSize.Width ) && ( this.NewSize.Height >= this.OldSize.Height ) ), 
      "We should never update to a smaller size." );
    }

    public Size OldSize { get; private set; }
    public Size NewSize { get; private set; }

    public bool ShouldInvalidateLayout( ContainerLayoutMode positioningContainerLayoutMode )
    {
      if( ( ( positioningContainerLayoutMode == ContainerLayoutMode.Horizontal ) || ( positioningContainerLayoutMode == ContainerLayoutMode.Floating ) )
        && ( this.NewSize.Height > this.OldSize.Height ) )
      {
        return true;
      }

      if( ( ( positioningContainerLayoutMode == ContainerLayoutMode.Vertical ) || ( positioningContainerLayoutMode == ContainerLayoutMode.Floating ) )
        && ( this.NewSize.Width > this.OldSize.Width ) )
      {
        return true;
      }

      return false;
    }
  }
}
